﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using System.Collections;
using Proxy;
using System.Web.Services;
using System.Text;
using Microsoft.Reporting.WebForms;

namespace SIM.Geo.UI.Reportes
{
    public partial class frmVisor : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int codigoAvanceDiario = int.Parse(Request.Params["cod"]);
                VerReporte(codigoAvanceDiario);
            }
        }

        private void VerReporte(int codigoAvanceDiario)
        {
            try
            {

                this.rv.Reset();
                this.rv.Visible = true;
                this.rv.ProcessingMode = ProcessingMode.Local;
                //this.rv.LocalReport.ReportPath = Server.MapPath("~") +  @"repAvanceDiario.rdlc";

                string path = HttpContext.Current.Server.MapPath("~/Reportes/");
                //LocalReport r = this.rv.LocalReport;
                this.rv.LocalReport.ReportPath = path + "repAvanceDiario1.rdlc";

                //this.rv.LocalReport.ReportPath = Server.MapPath("repAvanceDiario.rdlc");
                ReportDataSource datos = null;

                //AVANCE DIARIO
                using (var proxy = new SEAvanceDiarioClient("BasicHttpBinding_ISEAvanceDiario"))
                {
                    var listaAvance = proxy.ListarAvanceDiarioPorCodigo(codigoAvanceDiario);

                    datos = new ReportDataSource();
                    datos.Name = "repAvanceDiario";
                    datos.Value = listaAvance;
                    this.rv.LocalReport.DataSources.Add(datos);

                    //DETALLE DE PERFORACION
                    var detallePerforacion = proxy.ListarReporteAvanceDiarioSondaje(codigoAvanceDiario);
                    datos = new ReportDataSource();
                    datos.Name = "repAvanceDiarioSondajePerforacion";
                    datos.Value = detallePerforacion;
                    this.rv.LocalReport.DataSources.Add(datos);
                }

                //DETALLE DE DISTRIBUCION TRABAJO
                using (SEDistribucionTrabajoClient proxy = new SEDistribucionTrabajoClient("BasicHttpBinding_ISEDistribucionTrabajo"))
                {
                    var listaDistribucionTrabajo = proxy.ListarAvanceDiarioDistribucionTrabajo(codigoAvanceDiario).Where(x => x.CantidadHoras > 0).ToList();
                    datos = new ReportDataSource();
                    datos.Name = "repDistribucionTrabajo";
                    datos.Value = listaDistribucionTrabajo;
                    this.rv.LocalReport.DataSources.Add(datos);
                }

                //CONSUMO
                using (SEConsumoClient proxy = new SEConsumoClient("BasicHttpBinding_ISEConsumo"))
                {
                    var consumo = proxy.ListarAvanceDiarioConsumo(codigoAvanceDiario).ToList();
                    datos = new ReportDataSource();
                    datos.Name = "repConsumo";
                    datos.Value = consumo;
                    this.rv.LocalReport.DataSources.Add(datos);
                }

                //ENTUBACION
                using (SEEntubacionClient proxy = new SEEntubacionClient("BasicHttpBinding_ISEEntubacion"))
                {
                    var entubacion = proxy.ListarAvanceDiarioEntubacion(codigoAvanceDiario).ToList();
                    datos = new ReportDataSource();
                    datos.Name = "repEntubacion";
                    datos.Value = entubacion;
                    this.rv.LocalReport.DataSources.Add(datos);
                }

                this.rv.LocalReport.Refresh();
                this.rv.DataBind();

            }
            catch (Exception ex)
            {

                Logger.Error("frmVisor:ibtnFinalizar_Click", ex);
            }
        }
    }
}